//package com.bsj.power.pls.protocol;
//
//import com.bsj.power.common.def.vo.pls.uwb.UWBBasePosVO;
//import com.bsj.tools.Conv;
//
//public class UWBPosPacket {
//
//    public static UWBBasePosVO packetBasePos(byte[] data){
//        UWBBasePosVO uwbBasePosVO = new UWBBasePosVO();
//        int offset = 0;
//        int roll = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        int navigation = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        int pitch = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        int northSpeed = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        int speed = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        int eastSpeed = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        int lat = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        int high = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        int lon = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        int xAngleSpeed = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        int yAngleSpeed = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        int zAngleSpeed = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        int xAcceleration = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        int yAcceleration = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        int zAcceleration = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        return uwbBasePosVO;
//    }
//
//    /**
//     * 组装无人机位置信息
//     * @param data
//     * @return
//     */
//    public static byte[] fusionPos(UWBPosDto data) {
//        int len = 8 + 8 + 4 + 4 + 4 + 2 + 4 + 2 + 2 + 2 + 2 + 2 + 2 + 8 + 4 + 4 + 4 + 2 + 4 + 8 + 4
//                + 4 + 2 + 2 + 2 + 4 + 2 + 4 + 8 + 4 + 4 + 2 + 4 + 8 + 4 + 4 + 2 + 2 + 2 + 4 + 2 + 4
//                + 2 + 2 + 8 + 4 + 4 + 2 + 2 + 2 + 4 + 4 + 4 + 8 + 4 + 4 + 4 + 2 + 4 + 8 + 4 + 4 + 2
//                + 2 + 2 + 8 + 4 + 4 + 2 + 4 + 2 + 2 + 2 + 2 + 2 + 2;
//        byte[] result = new byte[len];
//        int offset = 0;
//        offset += 8;
//        Conv.setLongNetOrder(result, offset , data.getTime());
//        offset += 8;
//        offset += 4;
//        offset += 4;
//        Conv.setIntNetOrder(result, offset, (long) (data.getLat() * 1000000));
//        offset += 4;
//        Conv.setShortNetOrder(result, offset, (int) data.getHigh());
//        offset += 2;
//        Conv.setIntNetOrder(result, offset, (long) (data.getLon() * 1000000));
//        offset += 4;
//        offset += 2;
//        offset += 2;
//        offset += 2;
//        offset += 2;
//        offset += 2;
//        offset += 2;
//        offset += 8;
//        offset += 4;
//        offset += 4;
//        offset += 4;
//        offset += 2;
//        offset += 4;
//        offset += 8;
//        offset += 4;
//        offset += 4;
//        offset += 2;
//        offset += 2;
//        offset += 2;
//        offset += 4;
//        offset += 2;
//        offset += 4;
//        offset += 8;
//        offset += 4;
//        offset += 4;
//        offset += 2;
//        offset += 4;
//        offset += 8;
//        offset += 4;
//        offset += 4;
//        offset += 2;
//        offset += 2;
//        offset += 2;
//        offset += 4;
//        offset += 2;
//        offset += 4;
//        offset += 2;
//        offset += 2;
//        offset += 8;
//        offset += 4;
//        offset += 4;
//        offset += 2;
//        offset += 2;
//        offset += 2;
//        offset += 4;
//        offset += 4;
//        offset += 4;
//        offset += 8;
//        offset += 4;
//        offset += 4;
//        offset += 4;
//        offset += 2;
//        offset += 4;
//        offset += 8;
//        offset += 4;
//        offset += 4;
//        offset += 2;
//        offset += 2;
//        offset += 2;
//        Conv.setLongNetOrder(result, offset , data.getTime());
//        offset += 8;
//        offset += 4;
//        Conv.setIntNetOrder(result, offset, (long) (data.getBaseLat() * 1000000));
//        offset += 4;
//        Conv.setShortNetOrder(result, offset, (int) data.getBaseHigh());
//        offset += 2;
//        Conv.setIntNetOrder(result, offset, (long) (data.getBaseLon() * 1000000));
//        offset += 4;
//        offset += 2;
//        offset += 2;
//        offset += 2;
//        offset += 2;
//        offset += 2;
//        offset += 2;
//        return result;
//    }
//
//    public static UWBPosDto packetPos(byte[] data) {
//        int offset = 0;
//        UWBPosDto uwbPosDto = new UWBPosDto();
//        //系统状态
//        byte[] systemStatus = new byte[8];
//        System.arraycopy(data, offset, systemStatus, 0, 8);
//        offset = offset + 8;
//        //子项9时间信息
//        long sonNineTime = Conv.getLongNetOrder(data, offset);
//        offset = offset + 8;
//        //子项9状态字
//        int sonNineStatus = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //可信度
//        int sonNineTrust = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //纬度（子项9）
//        int sonNineLat = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //高度（子项9）
//        int sonNineHigh = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //经度（子项9）
//        int sonNineLon = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //滚动角
//        int sonNineRoll = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //航向角
//        int sonNineNavigation = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //俯视角
//        int sonNinePitch = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //北向速度
//        int sonNineNorthSpeed = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //天向速度
//        int sonNineSpeed = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //东向速度
//        int sonNineEastSpeed = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //子项4时间信息
//        long sonFourTime = Conv.getLongNetOrder(data, offset);
//        offset = offset + 8;
//        //子项4状态字
//        int sonFourStatus = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //协同可信度
//        int helpTrust = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //子项4纬度
//        int sonFourLat = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //子项4高度
//        int sonFourHigh = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //子项4经度
//        int sonFourLon = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //子项1时间信息
//        long sonOneTime = Conv.getLongNetOrder(data, offset);
//        offset = offset + 8;
//        //子项1状态字
//        int sonOneStatus = Conv.getShortNetOrder(data, offset);
//        offset = offset + 4;
//        //全源可信度
//        int allTrust = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //子项1滚动角
//        int sonOneRoll = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //子项1航向角
//        int sonOneNavigation = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //子项1俯仰角
//        int sonOnePitch = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //子项1纬度
//        int sonOneLat = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //子项1高度
//        int sonOneHigh = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //子项1经度
//        int sonOneLon = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //子项5时间信息
//        long sonFiveTime = Conv.getLongNetOrder(data, offset);
//        offset = offset + 8;
//        //子项5状态字
//        long sonFiveStatus = Conv.getLongNetOrder(data, offset);
//        offset = offset + 4;
//        //罗盘可信度
//        int compassTrust = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //航向角（子项5仿生罗盘）
//        int sonFiveRoll = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //航向角可信度（子项5仿生罗盘）
//        int sonFiveRollTrust = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //子项6时间信息
//        long sonSixTime = Conv.getLongNetOrder(data, offset);
//        offset = offset + 8;
//        //子项6状态字
//        long sonSixStatus = Conv.getLongNetOrder(data, offset);
//        offset = offset + 4;
//        //微惯性可信度
//        int inertiaTrust = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //滚动角（子项6）
//        int sonSixRoll = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //航向角（子项6）
//        int sonSixNavigation = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //俯仰角（子项6）
//        int sonSixPitch = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //纬度（子项6）
//        int sonSixLat = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //高度（子项6）
//        int sonSixHigh = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //经度（子项6）
//        int sonSixLon = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //陀螺温度均值（子项6）
//        int gyroscopeTemperature = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //加表温度均值（子项6））
//        int surfaceTemperature = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //子项2时间信息
//        long sonTwoTime = Conv.getLongNetOrder(data, offset);
//        offset = offset + 8;
//        //子项2状态字
//        int sonTwoStatus = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //视觉导航可信度（子项2）
//        int sonTwoVisionNavigationTrust = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //视觉导航输出相对滚动角（子项2）
//        int sonTwoVisionNavigationRoll = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //视觉导航输出相对航向角（子项2）
//        int sonTwoVisionNavigationAngle = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //视觉导航输出相对俯仰角（子项2）
//        int sonTwoVisionNavigationPitch = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //视觉导航输出X轴位移（子项2）
//        int sonTwoVisionNavigationXPos = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //视觉导航输出Y轴位移（子项2）
//        int sonTwoVisionNavigationYPos = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //视觉导航输出Z轴位（子项2）
//        int sonTwoVisionNavigationZPos = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //子项3时间信息
//        long sonThreeTime = Conv.getLongNetOrder(data, offset);
//        offset = offset + 8;
//        //子项3状态字
//        int sonThreeStatus = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //随机信号导航可信度（子项3）
//        int sonThreeRandom = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //纬度（子项3）
//        int sonThreeLat = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //高度（子项3）
//        int sonThreeHigh = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //经度（子项3）
//        int sonThreeLon = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //子项8时间信息
//        long sonEightTime = Conv.getLongNetOrder(data, offset);
//        offset = offset + 8;
//        //子项8状态字
//        int sonEightStatus = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //微旋转可信度
//        int rotate = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //滚动角（子项8）
//        int sonEightRoll = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //航向角（子项8）
//        int sonEightNavigation = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //俯仰角（子项8）
//        int sonEightPitch = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //基准时间信息
//        long baseTime = Conv.getLongNetOrder(data, offset);
//        offset = offset + 8;
//        //基准状态字
//        int baseStatus = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //基准纬度
//        int baseLat = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //基准高度
//        int baseHigh = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //基准经度
//        int baseLon = Conv.getIntNetOrder(data, offset);
//        offset = offset + 4;
//        //基准滚动角
//        int baseRoll = Conv.getShortNetOrder(data, offset);
//        offset= offset + 2;
//        //基准航向角
//        int baseNavigation = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //基准俯仰角
//        int basePitch = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //基准北向速度
//        int baseNorthSpeed = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //基准天向速度
//        int baseSpeed = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        //基准东向速度
//        int baseEastSpeed = Conv.getShortNetOrder(data, offset);
//        offset = offset + 2;
//        uwbPosDto.setTime(sonNineTime);
//        uwbPosDto.setLat(sonNineLat / 1000000.0);
//        uwbPosDto.setLon(sonNineLon / 1000000.0);
//        uwbPosDto.setHigh(sonNineHigh);
//        uwbPosDto.setEndTime(baseTime);
//        uwbPosDto.setBaseLat(baseLat / 1000000.0);
//        uwbPosDto.setBaseLon(baseLon / 1000000.0);
//        uwbPosDto.setBaseHigh(baseHigh);
//        return uwbPosDto;
//    }
//}